<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    /*
        抛出错误 throw
            - throw 后面必须有一个值,类型不限定
                - 例如
                    throw '123'
                    throw true
                    throw {name:'jack'}
            - 使用throw操作符,代码会立即停止执行
            - 可以抛出错误类
                - throw new Error('Something wrong')
          
     */
    
    /*
        0.自定义错误,继承Error
     */
    class CustomError extends Error{
        constructor(message) {
            super(message);
            this.name = 'CustomError'
            this.message = message
        }
    }
    try{
        throw new CustomError('My message')
    }catch (e) {
        console.log(e.message)
    }
    
    /*
        1.何时抛出错误
            实际编写 JavaScript 代码时，应该仔细评估每个函数，以及可能导致它们失败的情形。良好的错误 处理协议可以保证只会发生你自己抛出的错误。
     */
</script>
</body>
</html>